SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
/*
	====== MANEJA LA AUDITORIA CUANDO SE REALIZA UN INSERT SOBRE UNA TABLA =======
*/
CREATE PROCEDURE [dbo].[spInsertAudit]
@table_name varchar(100),
@usuario varchar(50),
@dirIP varchar(50),
@origen varchar(100)
 AS
SET NOCOUNT ON
--declare @tabla varchar(50)
--declare @baja varchar(1)
--declare @hasta datetime
--declare @op varchar(50)
--declare @evento int
declare @cod int
declare @idAuditoria int
declare @jefe int
		
		select @jefe = (Select idUsuario from tb_Usuarios where upper(esjefe) = 'S' and idReparticion in (Select tb_Usuarios.idReparticion from tb_Usuarios where idUsuario = @usuario))		

		declare @FechaRegistro varchar(25)
		select @FechaRegistro = cast(month(getdate()) as varchar(3))+'/'+cast(day(getdate()) as varchar(3))+'/'+cast(year(getdate()) as varchar(4))		

		insert into tb_registroEventos(fecha, idUsuario1, severidad, causa, idUsuario2, descripcion)
		values (@FechaRegistro, @usuario, 5, @origen, @jefe, 'Insert sobre '+@table_name)
		
		--Select @cod = (Select max(idRegistroAuditoria) from tb_RegistroAuditoria)
		--Select @cod = @cod+1

		Select @idAuditoria = (Select idauditoria from tb_Auditoria where TablaOSP = @table_name and Evento = 1)
		--declare cursor_Auditoria cursor for
		--Select tablaOSP, baja, hasta, Evento, idAuditoria from tb_Auditoria where TablaOSP = @table_name and Evento=1
		
		--open cursor_Auditoria
		--fetch next from cursor_Auditoria
		--into @tabla, @baja, @hasta, @evento, @idAuditoria

		--select @op = (Select evento from tb_EventosAuditoria where idEvento = @evento)		

		/*si todavia es valida la auditoria para esta tabla*/
		--if (@baja <> 'S') and (@op = 'A')
		--begin
			--por el momento le mandamos el mensaje al mismo usuario que lo genera
		
			insert into tb_RegistroAuditoria(fecha, idUsuario, descripcion, dirIP, idAuditoria)
			values (@FechaRegistro, @usuario, 'Alta sobre tabla '+@table_name, @dirIP,@idAuditoria)	
		--end 
		--close cursor_Auditoria
		--deallocate cursor_Auditoria
GO
GRANT EXECUTE ON  [dbo].[spInsertAudit] TO [public]
GO
